package com.zjl.redis.第02章_十大数据类型;

import com.zjl.redis.第01章_redis安装.RedisUtil;
import redis.clients.jedis.Jedis;

/**
 * 通过bitfield命令可以一次性操作多个比特位域(指的是连续的多个比特位)，
 * 它会执行一系列操作并返回一个响应数组，这个数组中的元素对应参数列表中的相应操作的执行结果。
 *
 * 说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。
 *
 */
public class B9_Bitfield {
    /**
     * 位域  相当于对 ascii 码进行修改  yi
     * 1.bitfield key [get type offset] [OVERFLOW [WRAP |SAT |FAIL]] [SET type offset value] [INCRBY type offset increment]
     *    如   bitfield key get i8 0   //查询指定key 八位比特 从第0位开始  返回 有符合的数字
     *          type ：  最大 i64  或 u63     i:有符号整数   u：无符号整数
     *          offset 偏移量  从第几位开始  0第一位
     *
     * ●GET <type> <offset> -返回指定的位域
     * ●SET <type> <offset> <value> -设置指定位域的值并返回它的原值   value：可以是数字 或字母  返回被替换的
     * ●INCRBY <type> <offset> <increment> -自增或自减(如果increment为负数)指定位域的值并返回它的新值//不会超出修改前面的位数
     *          还有一个命令通过设置溢出行为来改变调用INCRBY指令的后序操作:
     * ●OVERFLOW [WRAP |SAT |FAIL]
     *      默认 WRAP  溢出  到最大时在加就变为全0
     *          SAT     到最大 就不加了，到最小不减了  INCRBY 会根据  i:有符号整数 -128~127   u：无符号整数 0~255
     *                                            SET      i:有符号整数 -128~127   u：无符号整数 只认识正数 相当于填入数的2进制
     *          FAIL  溢出抛错
     */
    public static void main(String[] args) {

        Jedis jedis = RedisUtil.getRedis();
        System.currentTimeMillis();//获取当前时间戳
        System.out.println(jedis.ping());//查看是否连接成功  PONG:成功
        jedis.close();
    }
}
